# -*- coding:utf-8 -*-
from flask import request, jsonify, abort
from flask_cors import CORS
from com.zzh.dao.cardDao import CardAPI

from . import app

CORS(app, supports_credentials=True)

'''银行卡管理表 zzh_card API'''


@app.route('/query-card/', methods=['POST'])  # 由于一个用户不会帮顶超过30张银行卡，此时根据userId进行查询当前用户所有的银行卡
def queryCard():
    userId = request.json.get('userId', "")  # messageName  消息接收人名称
    if not userId:
        return jsonify({"message": {"code": 0, "info": "未输入用户ID"}})
    queryResultOfDatabaseCard, cardListJson = CardAPI().queryCard(
        userId)  # queryResultOfDatabaseMessage:根据messageName查询出来的消息总条数；messageListJSON：当前messageName下所有的消息（JSON格式）
    if queryResultOfDatabaseCard:
        return jsonify({"cardListJson": cardListJson, "totalCount": queryResultOfDatabaseCard,
                        "massage": {"code": 1, "info": "queryCard OK"}})
    else:
        return jsonify({"message": {"code": 0, "info": "当前用户没有消息"}})


@app.route('/add-card/', methods=['POST'])
def addCard():
    if not request.json:
        print request.json
        abort(400)
    addCard = {
        'userId': request.json.get('userId', ),  # 必填，请传递user_id
        'cardName': request.json.get('cardName', ""),  # messageName  消息接收人名称
        'cardTel': request.json.get('cardTel', ""),  # messageTime  消息时间，默认读取调用的时候的系统时间
        'cardType': request.json.get('cardType', ""),  # messageTitle  消息标题
        'cardCode': request.json.get('cardCode', ""),  # messageContent  消息内容
        'userType': request.json.get('userType', "")

    }
    if not addCard:
        return jsonify({"message": {"code": 0, "info": "信息填写未完整"}})
    addCardResult = CardAPI().addCard(addCard)
    if addCardResult:
        return jsonify(
            {"addCardInfo": addCard, "massage": {"code": 1, "info": "addCard OK"}})  # 添加函数调用成功，返回添加的信息（不包括message_id）
    else:
        return jsonify({"message": {"code": 0, "info": "addCard Failed"}})  # 添加函数调用失败


@app.route('/update-card/<int:cardId>', methods=['POST'])
def updateCard(cardId):
    if not request.json:
        print request.json
        abort(400)
    updateCard = {
        'userId': request.json.get('userId', ),  # 必填，请传递user_id
        'cardName': request.json.get('cardName', ""),  # messageName  消息接收人名称
        'cardTel': request.json.get('cardTel', ""),  # messageTime  消息时间，默认读取调用的时候的系统时间
        'cardType': request.json.get('cardType', ""),  # messageTitle  消息标题
        'cardCode': request.json.get('cardCode', ""),  # messageContent  消息内容
        'userType': request.json.get('userType', "")

    }
    if not addCard:
        return jsonify({"message": {"code": 0, "info": "信息填写未完整"}})
    updateCardResult = CardAPI().updateCard(updateCard, cardId)
    if updateCardResult:
        return jsonify({"updateCardInfo": updateCard,
                        "massage": {"code": 1, "info": "updateCard OK"}})  # 添加函数调用成功，返回添加的信息（不包括message_id）
    else:
        return jsonify({"message": {"code": 0, "info": "updateCard Failed"}})  # 添加函数调用失败


@app.route('/delete-message/<int:cardId>', methods=['DELETE'])  # 根据invoiceId删除invoice表指定记录
def deleteCard(cardId):
    deleteCardResult = CardAPI().deleteCardById(cardId)
    if deleteCardResult:
        return jsonify({"message": {"code": 1, "info": "删除银行卡操作成功！"}})
    else:
        return jsonify({"message": {"code": 0, "info": "删除银行卡操作失败！"}})
